using System;
using System.Diagnostics;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("GeneralUtils")]
	public class GeneralUtils : MonoClass
	{
		public static float DEVELOPMENT_BUILD_TEXT_WIDTH => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "GeneralUtils", "DEVELOPMENT_BUILD_TEXT_WIDTH");

		public GeneralUtils(IntPtr address, string className)
			: base(address, className)
		{
		}

		public GeneralUtils(IntPtr address)
			: this(address, "GeneralUtils")
		{
		}

		public static bool IsObjectAlive(object obj)
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "GeneralUtils", "IsObjectAlive", new object[1] { obj });
		}

		public static bool IsCallbackValid(Delegate callback)
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "GeneralUtils", "IsCallbackValid", new object[1] { callback });
		}

		public static bool IsTestScene()
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "GeneralUtils", "IsTestScene", Array.Empty<object>());
		}

		public static bool IsEditorPlaying()
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "GeneralUtils", "IsEditorPlaying", Array.Empty<object>());
		}

		public static void ExitApplication()
		{
			MonoClass.smethod_17(TritonHs.MainAssemblyPath, "", "GeneralUtils", "ExitApplication");
		}

		public static bool IsDevelopmentBuildTextVisible()
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "GeneralUtils", "IsDevelopmentBuildTextVisible", Array.Empty<object>());
		}

		public static bool ForceBool(string strVal)
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "GeneralUtils", "ForceBool", new object[1] { strVal });
		}

		public static int ForceInt(string str)
		{
			return MonoClass.smethod_14<int>(TritonHs.MainAssemblyPath, "", "GeneralUtils", "ForceInt", new object[1] { str });
		}

		public static long ForceLong(string str)
		{
			return MonoClass.smethod_14<long>(TritonHs.MainAssemblyPath, "", "GeneralUtils", "ForceLong", new object[1] { str });
		}

		public static ulong ForceULong(string str)
		{
			return MonoClass.smethod_14<ulong>(TritonHs.MainAssemblyPath, "", "GeneralUtils", "ForceULong", new object[1] { str });
		}

		public static float ForceFloat(string str)
		{
			return MonoClass.smethod_14<float>(TritonHs.MainAssemblyPath, "", "GeneralUtils", "ForceFloat", new object[1] { str });
		}

		public static bool RandomBool()
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "GeneralUtils", "RandomBool", Array.Empty<object>());
		}

		public static float RandomSign()
		{
			return MonoClass.smethod_14<float>(TritonHs.MainAssemblyPath, "", "GeneralUtils", "RandomSign", Array.Empty<object>());
		}

		public static int UnsignedMod(int x, int y)
		{
			return MonoClass.smethod_14<int>(TritonHs.MainAssemblyPath, "", "GeneralUtils", "UnsignedMod", new object[2] { x, y });
		}

		public static bool IsEven(int n)
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "GeneralUtils", "IsEven", new object[1] { n });
		}

		public static bool IsOdd(int n)
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "GeneralUtils", "IsOdd", new object[1] { n });
		}

		public static string GetPatchDir()
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "GeneralUtils", "GetPatchDir");
		}

		public static bool CompleteProcess(Process proc)
		{
			return MonoClass.smethod_11<bool>(TritonHs.MainAssemblyPath, "", "GeneralUtils", "CompleteProcess", new Class276.Enum20[1] { Class276.Enum20.Class }, new object[1] { proc });
		}

		public static bool CompleteProcess(Process proc, int millisecondTimout)
		{
			return MonoClass.smethod_11<bool>(TritonHs.MainAssemblyPath, "", "GeneralUtils", "CompleteProcess", new Class276.Enum20[2]
			{
				Class276.Enum20.Class,
				Class276.Enum20.I4
			}, new object[2] { proc, millisecondTimout });
		}

		public static bool LogCompletedProcess(Process proc)
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "GeneralUtils", "LogCompletedProcess", new object[1] { proc });
		}
	}
}
